#ifndef NANE_WIN32FILESYSTEMIMPL__H
#   define  NANE_WIN32FILESYSTEMIMPL__H

#   include "nane/core/crt/FileSystem.h"
#   include "nane/core/SubSystemProduct.h"

namespace nane 
{
    class Win32ReadFile;
    class Win32WriteFile;
    
    class FileSystem::Implementation
        : public IFileSystem
    {
    public:
        Implementation();
        ~Implementation();
        
    public:
        bool Initialize();
        void Shutdown();
        IReadFile* OpenReadFile( const char* _filename );
        IWriteFile* OpenWriteFile( const char* _filename );
        bool Exists( const char* _filename );
        bool DeleteFile( const char* _filename );
        bool CreateFolder( const char* _path );
        bool DeleteFolder( const char* _path );
        void Release( Win32ReadFile* _win32ReadFile );
        void Release( Win32WriteFile* _win32WriteFile );
    };
}   // namespace nane

#endif	// NANE_WIN32FILESYSTEMIMPL__H

